The present disclosure relates generally to communication between virtual machines in a shared computer system, and, in particular, to in-band communication with virtual machines via a hypervisor message bus.
A shared computer system often supports a number of different guest operating systems concurrently using virtual machines. Virtual machines can be in the form of virtual machine guests, logical partitions (LPARs), or other isolation techniques. A shared computer system may also employ other containers executing discrete and unrelated tasks. In such a collaborative shared-physical-resource environment, testing and workloads can be disrupted in non-obvious ways during development on a shared computer system. For example, one virtual machine can execute a heavy workload that impacts performance in another virtual machine instance. This type of cross virtual machine impact can occur when soft limits are used for resource allocation across a single physical machine. However, during development, shared computer systems often do not use hard resource limiting, as issues typically arise in a limited number of circumstances (e.g., server contention for resources at the start of a heavy workload), and hard resource limiting can get in the way of effective testing. Additionally, all virtual machines on a shared computer system can be impacted when maintenance requires system-wide actions, such as halting the entire physical machine.
One problem that exists today is that users of shared computer systems are typically forced to subscribe to mailing lists describing pre-planned events that will impact system performance. More often than not, the users are given only a very short amount of time to react, and the system can become unavailable before messages about the outage are indirectly relayed to the users through e-mail or telephone calls. Users can be notified in general that they have e-mail waiting, but by the time the users receive and read the notification, it may be too late. Moreover, when a user plans on performing testing or performing a task on the shared computer system that will likely impact other virtual machines currently executing, the user may not have an adequate means of notifying other users of the impending problem due to incompatibilities and communication issues between each virtual machine. Thus, present communication mechanisms and shared computer systems are not flexible, nor dynamic enough to cope with the ever changing needs of communicating information to users in real-time across multiple virtual machines. It would be beneficial to have the ability to send notification messages directly into virtual machines (i.e., in band) for display to users in order to minimize delays and ensure that targeted users are informed of potential or actual issues in a timely manner. Accordingly, there is a need in the art for a messaging system for in-band communication with virtual machines executing on a shared computer system.